package dao

import (
	"example_shorten/dao/mysql"
	rdb "example_shorten/dao/redis"
	"example_shorten/model"

	"github.com/redis/go-redis/v9"
	"gorm.io/gorm"
)

var SqlSession *gorm.DB
var CacheSession *redis.Client

func InitMySQL() {
	SqlSession, _ = mysql.Init()
	SqlSession.AutoMigrate(&model.Url{})
}

func InitRedis() {
	CacheSession, _ = rdb.Init()
}

// Close 函数用于关闭 数据库连接
func Close() (err error) {
	// 从 SqlSession 中获取底层的数据库连接对象
	db, err := SqlSession.DB()

	// 如果获取连接对象时发生错误，直接返回错误
	if err != nil {
		return
	}
	// 关闭数据库连接
	err = db.Close()
	err = CacheSession.Close()
	// 如果关闭连接时发生错误，返回错误
	return
}
